package com.ddxz.tool.web.dto;


import com.ddxz.tool.core.common.DdxzStatus;

/**
 * @author user1
 */

public enum ErrorStatus implements DdxzStatus {
    /**
     * 定义服务共同的返回类型
     */
    SYSTEM_ERROR(9000, "系统问题，请联系管理员"),
    REPEAT_NAMES(9001, "名称重复"),
    INVALID_HTTP_PATH(404, "无效的HTTP接口地址"),
    SQL_NO_INITRALIZED(106, "解析对象未初始化"),
    UNKNOWN_TABLEALIAS(110, "列名所属的表不存在"),
    INVALID_CONSTRUCT(901, "BeanUtil不支持该类型的深拷贝{}"),
    INVALID_VERSION(901, "无效的版本信息{}"),
    INVALID_CONVERT(903, "BeanUtil 不支持将类型{}转换为{}"),
    INVALID_COPY(904, "CollectionUtil不支持将原容器{}拷贝到新{}容器中"),
    SQL_NOVALID_TABLE(801, "无有效的数据表"),
    SQL_INVALID_QUERY_TYPE(802, "无效的服务类型: {}"),
    SQL_INVALID_SCHEMA(803, "无效的模式名"),
    SQL_NO_RESULT_FOUND(804, "结果清单为空，无法生成接口"),
    SQL_REPEAT_RESULT_ALIAS(805, "结果别名中存在重复的名称 {}"),
    UNSUPPERT_THAT_DATABASE(806, "当前不支持该类型的数据库"),
    CURRENT_PARSE_NOT_SUPPERT(807, "当前版本不支持该SQL写法 {}"),
    SUBQUERY_MAST_HAS_NAME(808, "子查询必须使用别名"),
    NO_TABLE_FOUND(809, "无数据表被使用"),
    NO_RESULT_FOUND(810, "结果集合不能为空"),
    UNCERTAINTY_COLUMN(811, "无法确定列{}所在的数据表"),
    INVALID_ENCRYP_NAME(812, "无效的加密方式: {}"),
    INVALID_FILE_MD5(813, "计算文件{}的MD5值失败"),
    MAX_LESSTHAN_MIN(814, "最大值{}小于最小值{}"),
    INVALID_PARAM_TYPE(815, "不支持的参数类型{}"),
    NO_DEFAULT_CONTRUCT(816, "类{}无缺省的构造函数"),
    NO_SET_FUNCTION(817, "属性{}无SET方法"),
    HTTPS_WITHOUD_KEY_FILE(818, "HTTPS请求缺少认证文件"),
    HTTPS_KEY_FILE_NOT_EXISTS(819, "HTTPS对应的认证文件{}不存在"),
    SIZE_MAST_BEGGER_THAN_ZERO(701, "六十二进制初始化大小必须大于零"),
    INVALID_CHARS(702, "无效的62进制字符"),
    LICENSE_NOT_FOUND(703, "license文件{}不存在"),
    MODULE_NOT_PERMISSION(704, "当前模块未授权"),
    MODULE_LICENSE_EXPIRED(705, "模块授权过期，有效期至{}"),
    SORUCES_OBJECT_ID(601, "主目录不能删除"),
    SORUCES_STRUCTURE_NOT_NULL(602, "目录下有内容，不能删除"),
    TABLE_IS_SUBSCRIPTION(603, "资源已订阅，无法删除"),
    PARAM_NOT_NULL(604, "参数不能为空");

    private Integer status;

    private String message;

    ErrorStatus(Integer status, String message) {
        this.message = message;
        this.status = status;
    }

    @Override
    public Integer getStatus() {
        return status;
    }

    @Override
    public String getMessage() {
        return message;
    }

}
